/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package topico2.banco;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import topico2.banco.Conta;

/**
 *
 * @author leovirgilio
 */
public class Main {

    public static void main(String args[]) {
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

        int op = 5;
        int cont = 0;
        Conta contas[] = new Conta[10];
        Conta c = new Conta(cont, null, cont);

        do {
            System.out.println("[1] - Criar conta;");
            System.out.println("[2] - Depositar;");
            System.out.println("[3] - Sacar;");
            System.out.println("[4] - Exibir saldo;");
            System.out.println("[5] - Sair;");
            System.out.print("--------------------\nDigite a operação: ");
            try {
                op = Integer.parseInt(input.readLine());
            } catch (IOException ex) {
                System.out.println("ERRO ao digita opcao.\n" + ex);
            }

            switch (op) {
                case 1:
                    if (cont < 10) {
                        System.out.println("*** CRIAR CONTA ***");

                        System.out.println("Numero:\t" + cont);
                        c.setNumero(cont);
                        System.out.println("Nome do Titular:\t");
                        try {
                            c.setNomeTitular(input.readLine());
                        } catch (IOException ex) {
                            System.out.println("ERRO ao digitar o nome do titular.\n" + ex);
                        }
                        System.out.println("Saldo:\t");
                        try {
                            c.setSaldo(Double.parseDouble(input.readLine()));
                        } catch (IOException ex) {
                            System.out.println("ERRO ao digitar o saldo.\n" + ex);
                        }
                        System.out.println("### CONTA CRIADA COM SUCESSO ###\n");
                        contas[cont] = c;
                        System.out.println(contas[cont].toString());
                    } else {
                        System.out.println("Desculpe, nao podemos criar sua conta pois atingiu o numero maximo.\n");
                    }
                    cont++;
                    break;

                case 2:
                    int d = 0;
                    double valorD = 0;
                    System.out.println("*** DEPOSITAR ***");
                    System.out.println("Digite o numero da conta:");
                    try {
                        d = Integer.parseInt(input.readLine());
                    } catch (IOException ex) {
                        System.out.println("ERRO ao digitar numero da conta.\n" + ex);
                    }
                    System.out.println("Digite o valor a ser depositado:");
                    try {
                        c.depositar(valorD = Double.parseDouble(input.readLine()));
                    } catch (IOException ex) {
                        System.out.println("ERRO ao digitar valor a ser depositado.\n" + ex);
                    }
                    contas[d] = c;
                    System.out.println("R$ " + valorD + " depositado com sucesso na conta de " + contas[d].getNomeTitular());
                    break;
                case 3:
                    int s = 0;
                    double valorS = 0;
                    System.out.println("*** SACAR ***");
                    System.out.println("Digite o numero da conta:");
                    try {
                        s = Integer.parseInt(input.readLine());
                    } catch (IOException ex) {
                        System.out.println("ERRO ao digitar numero da conta.\n" + ex);
                    }
                    System.out.println("Digite o valor a ser sacado:");
                    try {
                        c.depositar(valorS = Double.parseDouble(input.readLine()));
                    } catch (IOException ex) {
                        System.out.println("ERRO ao digitar valor a ser sacado.\n" + ex);
                    }
                    contas[s] = c;
                    System.out.println("R$ " + valorS + " sacado com sucesso na conta de " + contas[s].getNomeTitular());
                    break;
                case 4:
                    int sa = 0;
                    System.out.println("*** EXIBIR SALDO ***");
                    System.out.println("Digite o numero da conta:");
                    try {
                        sa = Integer.parseInt(input.readLine());
                    } catch (IOException ex) {
                        System.out.println("ERRO ao digitar numero da conta.\n" + ex);
                    }
                    System.out.println(contas[sa].toString());
                    break;
                case 5:
                    System.exit(0);
                default:
                    System.out.println("Opcao invalida!");
            }
        } while (op != 5);
    }
}
